/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.velocityme.session;

import com.velocityme.entity.ChangeDelta;
import com.velocityme.entity.Contactable;
import com.velocityme.entity.Node;
import com.velocityme.entity.Person;
import com.velocityme.utility.DirectoryDTO;
import java.util.Set;
import javax.ejb.Local;
import javax.swing.tree.TreeModel;

/**
 *
 * @author rcrida
 */
@Local
public interface ContactableLocal {

    Set<Person> getNestedPersonSet(KeyLocal key, Contactable contactable);

    TreeModel getContactableTree(KeyLocal key);

    Set<Contactable> getNestedContactebles(KeyLocal key, Contactable contactable);

    DirectoryDTO getDirectoryDTO(KeyLocal key);
    
    void logCreate(final Contactable contactable, ChangeDelta changeDelta);

    void logEdit(final Contactable contactable, final Contactable current, ChangeDelta changeDelta);

    Contactable findContactable(KeyLocal key, Long contactableId);

}
